package cyx.example.ddd.domain.order.repository;

import cyx.example.ddd.domain.order.model.aggregate.Order;

import java.util.List;
import java.util.Optional;

/**
 * 订单仓储接口
 */
public interface OrderRepository {
    /**
     * 保存订单
     */
    void save(Order order);

    /**
     * 根据ID查找订单
     */
    Optional<Order> findById(String id);

    /**
     * 根据用户ID查找订单列表
     */
    List<Order> findByUserId(String userId);

    /**
     * 删除订单
     */
    void delete(Order order);
}